package com.john.blog.model.po;

import java.io.Serializable;

import javax.persistence.Column;

/**
 * 博客对象
 * 
 * @author JiangGengchao
 * @date 2018年2月28日
 */
public class Blog extends Model implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 博客标题
     */
    private String name;

    /**
     * 作者
     */
    private String author;

    /**
     * 文章哈希签名，防止出现重复文章
     */
    private String signature;

    /**
     * 请求url路径
     */
    private String url;

    /**
     * 静态化http服务器地址
     */
    @Column(name = "remoteUrl")
    private String remoteUrl;

    /**
     * 封面图片url路径
     */
    private String picture;

    /**
     * 标签集合
     */
    private String tags;

    /**
     * 文章类别ID
     */
    @Column(name = "categoryID")
    private String categoryID;

    /**
     * 博文状态，0显示，1不显示，2草稿
     */
    private Integer status;

    /**
     * 评论数
     */
    @Column(name = "commentNum")
    private Integer commentNum;

    /**
     * 分享数量
     */
    @Column(name = "shareNum")
    private Integer shareNum;

    /**
     * 点赞数
     */
    @Column(name = "heartNum")
    private Integer heartNum;

    /**
     * 阅读数
     */
    @Column(name = "readNum")
    private Integer readNum;

    /**
     * （冗余字段）状态名称：显示，不显示，草稿
     */
    @Column(name = "statusName")
    private String statusName;

    /**
     * （冗余字段）文章类别名称
     */
    @Column(name = "categoryName")
    private String categoryName;

    /**
     * （冗余字段）文章类型名称
     */
    @Column(name = "typeName")
    private String typeName;

    /**
     * 摘要
     */
    private String summary;

    /**
     * markdown格式的内容，用于重新编辑
     */
    private String content;

    /**
     * html格式的博文，主要用于重新静态化
     */
    private String html;

    /**
     * 获取博客标题
     *
     * @return name - 博客标题
     */
    public String getName() {
        return name;
    }

    /**
     * 设置博客标题
     *
     * @param name
     *            博客标题
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取作者
     *
     * @return author - 作者
     */
    public String getAuthor() {
        return author;
    }

    /**
     * 设置作者
     *
     * @param author
     *            作者
     */
    public void setAuthor(String author) {
        this.author = author;
    }

    /**
     * 获取文章哈希签名，防止出现重复文章
     *
     * @return signature - 文章哈希签名，防止出现重复文章
     */
    public String getSignature() {
        return signature;
    }

    /**
     * 设置文章哈希签名，防止出现重复文章
     *
     * @param signature
     *            文章哈希签名，防止出现重复文章
     */
    public void setSignature(String signature) {
        this.signature = signature;
    }

    /**
     * 获取请求url路径
     *
     * @return url - 请求url路径
     */
    public String getUrl() {
        return url;
    }

    /**
     * 设置请求url路径
     *
     * @param url
     *            请求url路径
     */
    public void setUrl(String url) {
        this.url = url;
    }

    /**
     * 获取静态化http服务器地址
     *
     * @return remoteUrl - 静态化http服务器地址
     */
    public String getRemoteUrl() {
        return remoteUrl;
    }

    /**
     * 静态化http服务器地址
     *
     * @param remoteUrl
     *            静态化http服务器地址
     */
    public void setRemoteUrl(String remoteUrl) {
        this.remoteUrl = remoteUrl;
    }

    /**
     * 获取封面图片url路径
     *
     * @return picture - 封面图片url路径
     */
    public String getPicture() {
        return picture;
    }

    /**
     * 设置封面图片url路径
     *
     * @param picture
     *            封面图片url路径
     */
    public void setPicture(String picture) {
        this.picture = picture;
    }

    /**
     * 获取标签集合
     *
     * @return tags - 标签集合
     */
    public String getTags() {
        return tags;
    }

    /**
     * 设置标签集合
     *
     * @param tags
     *            标签集合
     */
    public void setTags(String tags) {
        this.tags = tags;
    }

    /**
     * 获取文章类别ID
     *
     * @return categoryID - 文章类别ID
     */
    public String getCategoryID() {
        return categoryID;
    }

    /**
     * 设置文章类别ID
     *
     * @param categoryID
     *            文章类别ID
     */
    public void setCategoryID(String categoryID) {
        this.categoryID = categoryID;
    }

    /**
     * 获取博文状态，0显示，1不显示，2草稿
     *
     * @return status - 博文状态，0显示，1不显示，2草稿
     */
    public Integer getStatus() {
        return status;
    }

    /**
     * 设置博文状态，0显示，1不显示，2草稿
     *
     * @param status
     *            博文状态，0显示，1不显示，2草稿
     */
    public void setStatus(Integer status) {
        this.status = status;
    }

    /**
     * 获取评论数
     *
     * @return commentNum - 评论数
     */
    public Integer getCommentNum() {
        return commentNum;
    }

    /**
     * 设置评论数
     *
     * @param commentNum
     *            评论数
     */
    public void setCommentNum(Integer commentNum) {
        this.commentNum = commentNum;
    }

    /**
     * 获取分享数量
     *
     * @return shareNum - 分享数量
     */
    public Integer getShareNum() {
        return shareNum;
    }

    /**
     * 设置分享数量
     *
     * @param shareNum
     *            分享数量
     */
    public void setShareNum(Integer shareNum) {
        this.shareNum = shareNum;
    }

    /**
     * 获取点赞数
     *
     * @return heartNum - 点赞数
     */
    public Integer getHeartNum() {
        return heartNum;
    }

    /**
     * 设置点赞数
     *
     * @param heartNum
     *            点赞数
     */
    public void setHeartNum(Integer heartNum) {
        this.heartNum = heartNum;
    }

    /**
     * 获取阅读数
     *
     * @return readNum - 阅读数
     */
    public Integer getReadNum() {
        return readNum;
    }

    /**
     * 设置阅读数
     *
     * @param readNum
     *            阅读数
     */
    public void setReadNum(Integer readNum) {
        this.readNum = readNum;
    }

    /**
     * 获取（冗余字段）状态名称：显示，不显示，草稿
     *
     * @return statusName - （冗余字段）状态名称：显示，不显示，草稿
     */
    public String getStatusName() {
        return statusName;
    }

    /**
     * 设置（冗余字段）状态名称：显示，不显示，草稿
     *
     * @param statusName
     *            （冗余字段）状态名称：显示，不显示，草稿
     */
    public void setStatusName(String statusName) {
        this.statusName = statusName;
    }

    /**
     * 获取（冗余字段）文章类别名称
     *
     * @return categoryName - （冗余字段）文章类别名称
     */
    public String getCategoryName() {
        return categoryName;
    }

    /**
     * 设置（冗余字段）文章类别名称
     *
     * @param categoryName
     *            （冗余字段）文章类别名称
     */
    public void setCategoryName(String categoryName) {
        this.categoryName = categoryName;
    }

    /**
     * 获取（冗余字段）文章类型名称
     * 
     * @return typeName - （冗余字段）文章类型名称
     */
    public String getTypeName() {
        return typeName;
    }

    /**
     * 设置（冗余字段）文章类型名称
     *
     * @param typeName
     *            （冗余字段）文章类型名称
     */
    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }

    /**
     * 获取摘要
     *
     * @return summary - 摘要
     */
    public String getSummary() {
        return summary;
    }

    /**
     * 设置摘要
     *
     * @param summary
     *            摘要
     */
    public void setSummary(String summary) {
        this.summary = summary;
    }

    /**
     * 获取markdown格式的内容，用于重新编辑
     *
     * @return content - markdown格式的内容，用于重新编辑
     */
    public String getContent() {
        return content;
    }

    /**
     * 设置markdown格式的内容，用于重新编辑
     *
     * @param content
     *            markdown格式的内容，用于重新编辑
     */
    public void setContent(String content) {
        this.content = content;
    }

    /**
     * 获取html格式的博文，主要用于重新静态化
     *
     * @return html - html格式的博文，主要用于重新静态化
     */
    public String getHtml() {
        return html;
    }

    /**
     * 设置html格式的博文，主要用于重新静态化
     *
     * @param html
     *            html格式的博文，主要用于重新静态化
     */
    public void setHtml(String html) {
        this.html = html;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", name=").append(name);
        sb.append(", author=").append(author);
        sb.append(", createDate=").append(createDate);
        sb.append(", updateDate=").append(updateDate);
        sb.append(", signature=").append(signature);
        sb.append(", url=").append(url);
        sb.append(", remoteUrl=").append(remoteUrl);
        sb.append(", picture=").append(picture);
        sb.append(", tags=").append(tags);
        sb.append(", categoryID=").append(categoryID);
        sb.append(", status=").append(status);
        sb.append(", commentNum=").append(commentNum);
        sb.append(", shareNum=").append(shareNum);
        sb.append(", heartNum=").append(heartNum);
        sb.append(", readNum=").append(readNum);
        sb.append(", statusName=").append(statusName);
        sb.append(", categoryName=").append(categoryName);
        sb.append(", typeName=").append(typeName);
        sb.append(", summary=").append(summary);
        sb.append(", content=").append(content);
        sb.append(", html=").append(html);
        sb.append("]");
        return sb.toString();
    }
}